// 配置基地址
axios.defaults.baseURL = 'http://www.itcbc.com:8000'
//token认证设置，注册和登录不需要设置token
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('token')

// 添加请求拦截器
axios.interceptors.request.use(function (config) {
  // 在发送请求之前做些什么（判断路径，如果不是注册和登录，就进行token头信息设置）
  if(config.url.indexOf('/api') === -1) {
    // 赋值使用,挂载属性方式，不要用对象方式覆盖
    config.headers['Authorization'] = localStorage.getItem('token')
  }
  // 返回请求参数
  return config
}, function (error) {
  // 对请求错误做些什么
  return Promise.reject(error)
})

// 设置响应拦截器 - 拦截响应后判断响应状态码
axios.interceptors.response.use(function (response) {
  // 对响应数据做点什么（判断业务状态码，如果为1，提示错误）
  if(response.data.code === 1) {
    toastr.error(response.data.message)
  }
  // 返回响应对象
  return response
}, function (error) {
  // 需求：“失效的token，要求页面跳转到登录页，+登录拦截”
  console.dir(error.response.data)
  if(error.response.data.message === '身份认证失败') {
    // 判断，如果当前页面是index.html就直接跳转到登录页
    if(location.href.indexOf('index.html') != -1) {
      location.href = './login.html'
    }else {
      // 如果当前页面不是index.html页面，就让他父页面跳转
      // window.parent得到的就是 父页面的 window对象
      window.parent.location.href = './login.html'
    }
    // 销毁无效token
    localStorage.removeItem('token')
  }else {
    // 除了身份认证失败,其他错误提示
    toastr.error(error.response.data.message)
  }
  // 对响应错误做点什么
  return Promise.reject(error)
})